<?php
/*
*
* dtapi 框架入口php
* 项目官网： www.dtapi.cn
* 这是一个完全开源免费的项目，您可以任意使用；我们唯一的要求就是保留本信息，当然您也可以在后面添加自己的版权信息，我们支持任何人使用本软件进行任何商业的非商业用途。
* 如果您有问题或者有更好的想法可以加群 61291160 一起讨论。
* -- 高飞
*
*/

namespace dtapi;

/*
 * DTAPI_ROOT
 * 常量
 * 调用框架路径
 */


define("DTAPI_ROOT", str_replace("\\", '/', dirname(__FILE__)) . '/');

/*
 * 常量,当前网址
 */
define('DTAPI_URL', $_SERVER['HTTP_HOST']);

/*
 * 判断必须参数是否已经定义和对应目录是否已经创建，否则终止框架往下执行
 */
try {
    if (isset($DTapi)) {
        if (!isset($DTapi['name'])) {
            throw new \Exception('应用名称未定义');
            return;
        }
        if (!isset($DTapi['author'])) {
            throw new \Exception('应用作者未定义');
        }
        $author_path = DTAPI_ROOT . 'app/' . $DTapi['author'];
        if (!is_dir($author_path)) {
            throw new \Exception('应用作者目录不存在');
        }
        $app_root = DTAPI_ROOT . 'app/' . $DTapi['author'] . '/' . $DTapi['name'];
        if (!is_dir($app_root)) {
            throw new \Exception('应用目录不存在');
        }
    } else {
        throw new \Exception('应用配置参数未定义或定义错误');
    }
} catch (\Exception $e) {
    exit($e);
}


/*
 * DTAPI_AUTHOR_ROOT
 * 常量
 * 调用当前开发者路径
 */
define("DTAPI_AUTHOR_ROOT", $author_path . '/');
/*
 * DTAPI_APP_ROOT
 * 常量
 * 调用当前插件路径
 */
define("DTAPI_APP_ROOT", $app_root . '/');

/*
 * 当前插件风格路径
 */
define("DTAPI_APP_SKIN", DT_PATH . 'api/DTapi/app/'.$DTapi['author'].'/'.$DTapi['name'].'/skin/');

/*
 * 当前插件模板路径
 */
define("DTAPI_APP_TPL", $app_root . '/tpl/');

/*
 * 当前插件控制器文件路径
 */
define("DTAPI_APP_PHP", $app_root . '/controller/');

/*
 * 控制器选择
 */
$DTapi['codeigniter'] = isset($DTapi['codeigniter']) && $DTapi['codeigniter'] ? $DTapi['codeigniter'] : '';
$codeigniter = $DTapi['codeigniter'] ? $DTapi['codeigniter'] : (isset($m) ? strip_tags($m) : 'index');

/*
 * 方法选择
 */
$func_name = isset($ac) ? strip_tags($ac) : 'index';

/*
 * 自动加载方法
 * 用于自动加载插件中的类文件
 */
require_once(DTAPI_ROOT . 'dtapi/loader.class.php');
if (file_exists(DTAPI_APP_PHP)) {

    //引入插件公共函数
    $func_file = DTAPI_APP_ROOT . 'function.php';
    if (is_file($func_file)) require $func_file;
    //加载指定的控制器和方法
    $class = '\\dtapp\\' . $DTapi['name'] . '\\' . $codeigniter;
    window::run($class, $func_name);
} else {
    throw new \Exception('插件不存在哦');
}
